package com.dragon.refect.classload;

/**
 * 被动引用字段演示二
 * 通过数组定义来引用类，不会触发此类的初始化
 *
 * 对于数组实例，其类型是由JVM虚拟机在运行期动态生成的，动态生成的类型，其父类类型就是Object
 *
 * 助记符:
 * anewarray: 表示创建一个引用类型(如类、接口、数组)数组，并将其引用值压入栈顶
 * newarray: 表示创建一个指定的原始类型(如int、float、char等)的数组
 * @author dragon
 * @since 2019/11/13
 */
public class PassiveReferenceDemo2 {

    public static void main(String[] args) {
        SuperClass[] superClasses = new SuperClass[10];
        System.out.println(superClasses.getClass().getClassLoader());
        System.out.println(SuperClass.class.getClassLoader());
       //  class [Lcom.dragon.refect.classload.SuperClass;
        System.out.println(superClasses.getClass());
        // class java.lang.Object
        System.out.println(superClasses.getClass().getSuperclass());

        int[] ints = new int[23];
        System.out.println(ints.getClass());
        System.out.println(ints.getClass().getClassLoader());

        byte[] bytes = new byte[2];
        System.out.println(bytes.getClass());

        int[][] array = new int[1][2];
        System.out.println(array.getClass());

        double[] doubles = new double[1];
        System.out.println(doubles.getClass());

        char[] chars = new char[12];
        System.out.println(chars.getClass());
    }
}
